/**
 * 
 */
package com.sebscape.sebcms.persistence.dao;

import java.io.Serializable;
import java.util.List;

import com.sebscape.sebcms.persistence.CmsPersistenceException;

/**
 * @author Stephen
 *
 */
public interface IGenericDao<T, ID extends Serializable> {
	
	/**
	 * Saves any Object which implements persistedObject.
	 * @param persistedObj
	 * @throws CmsPersistenceException
	 */
	T save( T persistedObj );
	
	Object query( String jdoql );
	
	List<T> findAll();

	List<T> findByFilter( String filter );

	List<T> findAllPaged( String order, Integer offset, Integer Limit );
	
	T load( ID id );
	
	Boolean delete( T persistedObject );

}